'''
Copyright (c) 2010, 2011 MIEM (http://miem.edu.ru/)
 
Authors:
    * Andrey Shtykovskiy    ( ashty@itas.miem.edu.ru      )
    * Edward Klyshinsky     ( klyshinsky@itas.miem.edu.ru )
    * Sergey R. Tumkovsky   ( srt@itas.miem.edu.ru        )
 
This file is part of MOAN (morphology analysis) software.
 
MOAN is free software: you can redistribute it and/or modify it 
under the terms of the GNU General Public License as published 
by the Free Software Foundation, either version 3 of the License, 
or (at your option) any later version.
 
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
 
You should have received a copy of the GNU General Public License 
along with MOAN. If not, see http://www.gnu.org/licenses/.
'''

from string import replace

def prepare(name):
    name = replace(name, ' ', '_')
    return name

class values(object):
    
    @staticmethod
    def empty(list, record):
        return None
    
    @staticmethod
    def list(list, record):
        return list[record]

class setter(object):
    
    @classmethod
    def pin(cls, object, list, value=values.empty):
        
        setattr(object,'pins',[])
        
        for record in list:
            
            property_name = prepare(record)
            object.pins.append(property_name)
            
            setattr(object, property_name, value(list, record))